package com.whfc.fmam.service;


import com.whfc.common.exception.BizException;
import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.fmam.entity.dto.FmamWeighRoomDTO;
import com.whfc.fmam.entity.dto.FmamWeighRoomFvsDeviceDTO;
import com.whfc.fmam.entity.dto.LicenseFileDTO;
import com.whfc.fmam.entity.qo.WeighRoomAddQO;
import com.whfc.fmam.entity.qo.WeighRoomEditQO;
import com.whfc.fmam.entity.qo.WeighRoomFvsDeviceAddQO;

import java.util.List;

/**
 * @author sun_guodong
 * @description 磅房服务
 * @date 2019-11-13
 */

public interface FmamWeighRoomService {

    /**
     * 查询磅房列表
     *
     * @param pageNum
     * @param pageSize
     * @param deptId
     * @return
     */
    PageData<FmamWeighRoomDTO> listFmamWeighRoomDTO(Integer pageNum, Integer pageSize, Integer deptId) throws BizException;

    /**
     * 查询磅房列表(不分页)
     *
     * @param deptId
     * @return
     * @throws BizException
     */
    ListData<FmamWeighRoomDTO> listFmamWeighRoomDTO(Integer deptId) throws BizException;

    /**
     * 获取组织机构下的磅房ID
     *
     * @param deptId
     * @return
     */
    List<FmamWeighRoomDTO> listWeighRoom(Integer deptId) throws BizException;

    /**
     * 获取组织机构下的磅房ID
     *
     * @param deptId
     * @return
     */
    List<Integer> listWeighRoomId(Integer deptId) throws BizException;

    /**
     * 根据磅房ID查找磅房信息
     *
     * @param weighRoomId weighRoomId
     * @return FmamWeighRoomDTO
     */
    FmamWeighRoomDTO getWeighRoom(Integer weighRoomId) throws BizException;

    /**
     * 增加磅房
     *
     * @param request
     */
    void addWeighRoom(WeighRoomAddQO request) throws BizException;

    /**
     * 删除磅房
     *
     * @param id
     */
    void delWeighRoom(Integer id) throws BizException;

    /**
     * 编辑磅房
     *
     * @param request
     */
    void editWeighRoom(WeighRoomEditQO request) throws BizException;

    /**
     * 查看授权文件
     *
     * @param weighRoomId
     * @return
     */
    ListData<LicenseFileDTO> licenseFileList(Integer weighRoomId) throws BizException;

    /**
     * 查看磅房监控列表
     * @param weighRoomId
     * @return
     */
    List<FmamWeighRoomFvsDeviceDTO> fvsDeviceList(Integer weighRoomId) throws BizException;


    /**
     * 添加磅房监控
     * @param fvsDeviceAddQO
     * @return
     */
    void addWeighRoomFvsDevice (WeighRoomFvsDeviceAddQO fvsDeviceAddQO)throws BizException;


    /**
     * 磅房视频监控设备删除
     *
     * @param weighRoomId
     * @param deviceId
     */
    void videoDel(Integer weighRoomId,Integer deviceId);
}
